package com.aizuda.boot.modules.business.negotiation.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 合同协商实例实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("contract_negotiation_instance")
@Schema(description = "合同协商实例对象")
public class ContractNegotiationInstanceEntity {
    
    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Schema(description = "合同ID")
    private Integer contractId;

    @Schema(description = "关联的协商配置ID")
    private Integer configId;

    @Schema(description = "协商阶段（如 发起合同申请、审批中）")
    private String negotiationStage;

    @Schema(description = "协商状态（pending，in_progress，completed，cancelled）")
    private String negotiationStatus;

    @Schema(description = "协商开始时间")
    private LocalDateTime startTime;

    @Schema(description = "最终确认时间")
    private LocalDateTime lastConfirmTime;

    @Schema(description = "协商群聊ID")
    private String chatGroupId;

    @Schema(description = "协商公告文本")
    private String announcementText;

    @Schema(description = "申请人ID")
    private Long applicantId;

    @Schema(description = "关联的流程实例ID")
    private Long processInstanceId;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
} 